package com.ym.b2b.order.dao;

import java.util.List;

import org.springframework.dao.DataAccessException;

import com.ym.b2b.order.sqlbean.EmSOrderConfirmItem;
import com.zc.commons.base.Page;

public interface EmSOrderConfirmItemDao {

    public void updateEmSOrderConfirmItem(EmSOrderConfirmItem emSOrderConfirmItem) throws DataAccessException;

    /**
     * 获取订单明细列表 集合
     * 
     * @Title: searchEmSOrderConfirmItem
     * @Description: TODO
     * @Throws
     */
    public List<EmSOrderConfirmItem> searchEmSOrderConfirmItem(EmSOrderConfirmItem emSOrderConfirmItem)
                                                                                                       throws DataAccessException;

    /**
     * @Title: searchEmSOrderConfirmItemDetail
     * @Description: 获取订单详情 明细
     * @Param @param emSOrderConfirmItem
     * @Throws
     */
    public EmSOrderConfirmItem searchEmSOrderConfirmItemDetail(EmSOrderConfirmItem emSOrderConfirmItem)
                                                                                                       throws DataAccessException;

    /**
     * @Title: 保存订单的 确认明细
     * @Description: TODO
     * @Param @param emSOrderConfirmItem
     * @Throws
     */
    public int saveOrUpdateEmSOrderConfrimItem(EmSOrderConfirmItem emSOrderConfirmItem) throws DataAccessException;

    public void saveEmSOrderConfirmItemBatch(final List<EmSOrderConfirmItem> list) throws DataAccessException;

    public void deleteEmSOrderConfirmItem(EmSOrderConfirmItem emSOrderConfirmItem) throws DataAccessException;

    public Integer searchEmSOrderConfirmItemNum(EmSOrderConfirmItem emSOrderConfirmItem) throws DataAccessException;

    public Integer searchEmSOrderConfirmItemBatchNum(EmSOrderConfirmItem emSOrderConfirmItem)
                                                                                             throws DataAccessException;

    /**
     * 分页记录数
     * 
     * @Title: searchPageEmSOrderConfirmItemNum
     * @Description: TODO
     * @Param @param emsorderconfirmitem
     * @Param @return
     * @Param @throws DataAccessException
     * @Return Long
     * @Throws
     */
    Long searchPageEmSOrderConfirmItemNum(EmSOrderConfirmItem emsorderconfirmitem) throws DataAccessException;

    /**
     * 分页查询
     * 
     * @Title: searchPageEmSOrderConfirmItem
     * @Description: TODO
     * @Param @param emsorderconfirmitem
     * @Param @param page
     * @Param @throws DataAccessException
     * @Return void
     * @Throws
     */
    void searchPageEmSOrderConfirmItem(EmSOrderConfirmItem emsorderconfirmitem, Page<EmSOrderConfirmItem> page)
                                                                                                               throws DataAccessException;

    Long searchPageItemNum(EmSOrderConfirmItem emsorderconfirmitem) throws DataAccessException;

    /**
     * 可申请退货商品列表
     * 
     * @Title: searchPageItemReturn
     * @Description: TODO
     * @Throws
     */
    public Page<EmSOrderConfirmItem> searchPageItemReturn(EmSOrderConfirmItem emsorderconfirmitem,
                                                          Page<EmSOrderConfirmItem> page) throws DataAccessException;

    /**
     * 退货申请
     * 
     * @Title: updateConfirmItemForIsReturn
     * @Description: TODO
     * @Throws
     */
    void updateConfirmItemForIsReturn(EmSOrderConfirmItem emsorderconfirmitem) throws DataAccessException;

    /**
     * 批量退货申请
     * 
     * @Title: updateMultipleConfirmItemForIsReturns
     * @Description: TODO
     * @Throws
     */
    void updateMultipleConfirmItemForIsReturns(EmSOrderConfirmItem emsorderconfirmitem);
}
